package com.example.service;

import com.example.dto.SentenceResult;
import com.example.entity.Record;

import java.util.List;

public interface RecordService {

    /**
     * 获取以创建时间先后排序的Record详细数据
     * @param userId 用户的id
     * @return 记录列表
     */
    public List<Record> getRecordsByUserIdSortByTime(String userId);

    /**
     * 获取以成绩高低排序的Record详细数据
     * @param userId 用户的id
     * @return 记录列表
     */
    public List<Record> getRecordsByUserIdSortByGrade(String userId);

    /**
     * 精准获取数据库的一条记录，userId和sentenceId可以唯一确定数据库的一条记录
     * @param userId 用户id
     * @param sentenceId 句子id
     * @return 唯一记录
     */
    public Record findByUserIdAndSentenceId(String userId, String sentenceId);

    /**
     * 保存记录
     * @param record 需要保存的记录对象
     */
    public void saveRecord(Record record);

    /**
     * 保存记录（如果是记录表已存在的句子记录，则只保存最高分的记录）
     * 返回该句子的最高分数
     * @param sentenceResults 调用讯飞api返回的成绩数据
     * @param userId 用户id
     * @param sentenceId 句子id
     * @return 该句子的最高分数
     */
    public double saveRecord(List<SentenceResult> sentenceResults, String userId, String sentenceId);

}
